[小ネタ][Golang]gofakeitとgocsvでダミーデータのCSVを作ってみる
今行っている作業でダミーデータのCSVを作りたいと思い、使用している言語がGolangであったため、それらを実現できるライブラリを検討してみました。 結果、以下の2つを組み合わせると楽にできました。
それぞれの使い方はリンクのページを見れば分かりやすいとは思いますが、組み合わせてCSVとして出力した例として、今回作成したプログラムを載せておきたいと思います。
プログラムと実行について
Golangを実行できる環境にて、「go mod」で予め使用するライブラリをインストールしておきます。
$ go get github.com/brianvoe/gofakeit/v6 $ go get -u github.com/gocarina/gocsv
プログラムについては以下となります。
package main import ( "fmt" "github.com/brianvoe/gofakeit/v6" "github.com/gocarina/gocsv" ) type Beer struct { ID int `csv:"id"` Malt string `csv:"malt"` Name string `csv:"name"` Style string `csv:"style"` } func main() { gofakeit.Seed(0) beers := []*Beer{} for i := 0; i < 10; i++ { b := &Beer{ gofakeit.Number(1, 100), gofakeit.BeerMalt(), gofakeit.BeerName(), gofakeit.BeerStyle(), } beers = append(beers, b) } csv, err := gocsv.MarshalString(&beers) if err != nil { panic(err) } fmt.Println(csv) }
今回はビールのダミーデータを作り、それをCSV形式で出力してみました。出力は標準出力にしているので、結果をファイルとして残したい場合はパイプを使うことなります。(今回は開発用のデータを作成するだけので、これで十分でした。)
実行は以下のようになります。
go run main.go > beer.csv
以上、簡単なダミーデータ作成の例でした。何かの役に立てば幸いです。